package com.chen;

import com.chen.factory.UsbKingFactory;
import com.chen.handler.MySellHandler;
import com.chen.service.UsbSell;

import java.lang.reflect.Proxy;

/**
 * @author Y·C
 * @version 1.0.0
 * @ClassName MainShop.java
 * @Description TODO
 * @createTime 2023年05月09日 16:54:00
 */
public class MainShop {
    public static void main(String[] args) {
        //创建代理对象，使用Proxy
        //1.创建目标对象
        UsbSell factory = new UsbKingFactory();
        //2.创建InvocationHandler对象
        MySellHandler handler = new MySellHandler(factory);

        //3.创建代理对象
        UsbSell proxy= (UsbSell) Proxy.newProxyInstance(factory.getClass().getClassLoader(), factory.getClass().getInterfaces(),handler);

        //4.通过代理执行方法
        float price = proxy.sell(1);
        System.out.println("通过动态代理对象，调用方法："+price);

    }
}
